﻿using UnityEngine;

public class GameManageer : MonoBehaviour
{
    // 目标模型
    public Transform Target;
    // 距离相机的位置
    public float Distance = 5;
    // 高度随机的范围
    public float YRange = 0.3f;

    // 箭头模型
    public GameObject Arrow;

    void Start()
    {
        SpawnSprite();
    }

    void LateUpdate()
    {
        UpdateArrow();
    }

    private void UpdateArrow()
    {
        // 计算模型方向与当前相机方向的夹角
        var angle = Vector3.Angle(Camera.main.transform.forward, Target.position - Camera.main.transform.position);

        if (angle > 20) {
            Arrow.SetActive(true);

            // 由于本工程中箭头模型的y轴与箭头自身的方向相反，所以最前面得加个负号
            Arrow.transform.up = -(Target.position - Camera.main.transform.position - Camera.main.transform.forward);
        }
        else{
            Arrow.SetActive(false);
        }
    }

    public void SpawnSprite()
    {
        var seed = Random.onUnitSphere;
        // Y轴不要太高
        seed.y = seed.y * YRange;

        Target.position = seed * Distance + Camera.main.transform.position;

        // 精灵看向相机
        Target.LookAt(Camera.main.transform);
    }
}
